Job flow Petri Net and controlling mechanism for parallel processing

ABSTRACT

The present disclosure provides a job flow system for use in a manufacturing environment, such as a semiconductor fab. The job flow system includes a plurality of sequence-related jobs associated with the manufacturing and a computer-controlled Petri Net structure. The Petri Net structure includes a plurality of agents associated with each of the sequence-related jobs. The Petri Net structure also includes a plurality of application processes to be performed by the agents, one or more description files, and a PN Center for loading the one or more description files and activating a first agent to perform one or more of the application processes in response to the one or more description files and in response to process status information from application processes.

BACKGROUND

The present disclosure relates generally to a system and method forcontrolling parallel distributed processes in a semiconductorfabrication facility (fab) or other manufacturing facility.

Manufacture of a product or plurality thereof involves the control,gathering, and analysis of data in very large databases. The data thatis collected by manufacturing equipment and processes provides essentialinformation for solving problems and controlling an entire manufacturingline. Solving the problems associated with new process implementationsand equipment technology as well as device requirements have become anever more daunting challenge.

Data collected from processes and controlling of jobs that may containprograms to processes or those that may concatenate data may contain aplurality of batch jobs. Traditionally, batch controllers executeprograms one by one. Therefore, launch or execution time of a program isbased on a maximum estimated execution time of a previous program orjob. This insures correct execution of subsequent jobs, programs, andsequences to allow for data integrity. However, the possible resultingtime latency can increase the time to perform data retrieval and controlbecause the estimated execution time may be longer than an actualexecution time. Moreover, if a program runs longer than a maximumestimated time, it is possible for incomplete data to be passed on to asubsequent program or job that would utilize such data.

In an environment where time to complete a task is important, completinga program or job in a minimum time with integrity of the data secure maybe required. In order to reduce a total running time for a program orjob as well as maintaining data integrity, a control and monitormechanism may be necessary to monitor running status and execution of aprogram or job simultaneously.

A Petri Net may be utilized to describe a job flow, which may be aparallel, cooperative, or sequential task system. A Petri Net is agraphical and mathematical modeling tool consisting of four components:a place, a transition, an arc and a token. The place indicates acondition, the transition indicates an event, the arc indicates a path,and the token indicates a state of condition. A token moves in the arcbetween the places according to the condition of the transitions, andcauses an event corresponding to the transition.

The current state of the Petri Net modeled system is given by not morethan one token in each place or at various places. Transitions areactive components for modeling activities that can occur, thus changingthe state of a system. Transitions are only allowed to activate if theyare enabled, which means that all the pre-conditions for an activitymust be fulfilled. When the transition activates, it removes tokens fromits input places and adds one token to each output places which connectsto it. The number of tokens removed/added can depend on the hierarchy ofeach arc. Input arcs connect places with transitions, while output arcsmay begin at a transition and end at a place. There are other types ofarcs, such as inhibitor arcs.

To study performance and dependability issues of systems, it may benecessary to introduce a timing concept into a model. There are severalpossibilities to do this for a Petri net; however, the most common wayis to associate an activation delay with each transition. This delay mayspecify the time that a transition has to be enabled before it canactually be activated. If a delay is a random distribution function, theresulting net array may be termed a stochastic Petri net. Differenttypes of transitions can be distinguished depending on their associateddelay, for instance immediate transitions (no delay), exponentialtransitions (delay is an exponential distribution), and deterministictransitions (delay is fixed).

Execution of computational jobs and programs in a fabricationenvironment where there are many complex processes occurringsimultaneously requires a method for controlling jobs and programs, forextracting data, and for analyzing the data. Problem solving in acomplex fabrication environment benefits from the ability to executejobs, programs and data extraction in parallel. There are many types ofmanufacturing environments that may benefit from a global automatedmechanism based upon the Petri Net mathematical model. A fabricationenvironment may invoke the use of a plurality of Petri Net structuresand sub-sets of parent Petri Net structures for the control offabrication equipment and the retrieval of data. The Petri Netstructures and a mechanism for control can be very effective in suchindustrial areas such as semiconductor, petroleum, pharmaceutical, andchemical.

Accordingly, what is needed is a system and method to provide control ofparallel processing in a manufacturing environment.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system for controlling parallel distributedprocesses.

FIG. 2 illustrates a plurality of computing devices forming a job flowmechanism for controlling and data collection/analysis from a pluralityof computing devices.

FIG. 3 illustrates a job flow Petri Net (PN) structure which provides amechanism to specify a job flow sequence and the dependency thereof.

FIG. 4 illustrates PN structures which are a variation of a PN structureutilizing the PN model rules of the present disclosure.

DETAILED DESCRIPTION

The present disclosure relates generally to software processing in amanufacturing environment, such as a semiconductor manufacturing foundryand, more particularly, to a system and method for controlling paralleldistributed processes in such an environment. It is understood that thefollowing disclosure provides many different embodiments forimplementing different features of the invention. Specific examples ofcomponents and arrangements are described below to simplify the presentdisclosure. These examples are not intended to be limiting. In addition,the present disclosure may repeat reference numerals and/or letters inthe various examples. This repetition is for the purpose of simplicityand clarity and does not in itself dictate a relationship between thevarious embodiments and/or configurations discussed.

Products that have a complex fabrication flow can benefit by thecontinuous collection of data from processes, process and testequipment, product history, and environmental conditions. Manufacturingmethods may include a myriad of process steps and may include processcycle times from a day to many months. New manufacturing methods mayimprove effectiveness by implementing a robust global data collectionand control system. Enormous amounts of data and control programs may beimplemented in high technological manufacturing/fabrication facilities,such as a petroleum, pharmaceutical, chemical, automotive, andsemiconductor device fabrication facilities (foundries). The need foreffective control and collection of vast amounts of data from processequipment and facilities has become ever more evident.

For example, the manufacture of semiconductor devices continuallybecomes more complex as the devices become smaller and include morecircuitry and features. The analysis of data is key to solvingday-to-day problems of equipment, process, and product integration in asemiconductor fabrication facility (fab) used for the production ofsemiconductor wafers. Semiconductor wafers are typically grouped inlots, each lot including one or more wafers. The present disclosureprovides a method and mechanism for controlling parallel processingwhich allows for faster and more effective analysis and can improve theoverall efficiency of a plurality of processes in a manufacturingenvironment such as one or more semiconductor fabs.

Referring now to FIG. 1, a semiconductor foundry 10 is one embodiment ofa manufacturing environment that can benefit from the present invention.The foundry 10 includes an exemplary computer 100 having a centralprocessing unit (CPU) 102, a memory unit 104, an input/output (I/O)device 106, and a network interface 108. The network interface mayinclude, for example, one or more network interface cards (NICs). Thecomponents 102, 104, 106, and 108 may be interconnected by a bus system110. It is understood that the computer may be differently configuredand that each of the listed components may actually represent severaldifferent components. For example, the CPU 102 may actually represent amulti-processor or a distributed processing system; the memory unit 104may include different levels of cache memory, main memory, hard disks,and remote storage locations; and the I/O device 106 may includemonitors, keyboards, and the like.

The computer 100 may be connected to a network 112, which may be, forexample, a complete network or a subnet of a local area network, acompany wide intranet, and/or the Internet. The computer 100 may beidentified on the network 112 by an address or a combination ofaddresses, such as a media access control (MAC) address associated withthe network interface 108 and an internet protocol (IP) address. A widerange of flexibility may be anticipated in the configuration of thecomputer 100. Other embodiments include a distribution of computers andcomputing devices. Some of the computers and/or computing devices mayinclude pagers, personal digital assistants, cellular telephones, laptopcomputers, and the like. Furthermore, it is understood that in someimplementations, the computer 100 may act as a server to other computersand/or computing devices.

A plurality of processing entities 114, 116, 118, 120 may also be incommunication with the computer 100. In the present example, theentities 114–120 may be connected through the networks 112, althoughother types of communications may be used. In furtherance of the presentexample where the manufacturing environment is a semiconductor fab, theentities 114, 116, 118 may represent different processing equipment,such as etchers, furnaces, cleaning chambers, and the like, and theentity 120 may represent a process engineering computer. In anotherexample, one entity may represent a lab, maintenance equipment, serviceprovider, customer, manager, another fab, and/or an assembly/testfacility. Each entity may interact with other entities and may provideservices to and/or receive services from the other entities.

Continuing with the present example, the computer 100 includes alogistics system, and a work-in-process (WIP) inventory system, aproduct data management system, a lot control system, and amanufacturing execution system (MES). The WIP inventory system may trackworking lots using a database. The product data management system maymanage product data and maintain a product database. The productdatabase may include product categories (e.g., part, part numbers, lotnumbers, and associated information), as well as a set of process stagesthat may be associated with each category of products. The lot controlsystem may convert a process stage to its corresponding process steps.

The MES may be an integrated computer system representing the methodsand tools used to accomplish production. In the present example, theprimary functions of the MES may include collecting data in real time,organizing and storing the data in a centralized database, work ordermanagement, workstation management, process management, inventorytracking, and document control. The MES may be connected to othersystems both within the semiconductor foundry 10 and outside of the fab.Examples of the MES may include Promis (Brooks Automation Inc. ofMassachusetts), Workstream (Applied Materials, Inc. of California),Poseidon (IBM Corporation of New York), and Mirl-MES (MechanicalIndustry Research Laboratories of Taiwan). Each MES may include adifferent application area. For example, Mirl-MES may be used inapplications involving packaging, liquid crystal displays (LCDs), andprinted circuit boards (PCBs), while Promis, Workstream, and Poseidonmay be used for IC fabrication and thin film transistor LCD (TFT-LCD)applications. The MES may include such information as a process stepsequence for each product.

It is understood that the entities 114–120, as well as their describedinterconnections, are for purposes of illustration only. For example, itis envisioned that more or fewer entities, both internal and external,may exist within the semiconductor foundry 10, and that some entitiesmay be incorporated into other entities or distributed. For example, asingle plasma-enhanced chemical vapor deposition system or an atomiclayer deposition system may include several sub-systems and chambers.The semiconductor foundry 10 may also include a myriad of processingequipment adapted for physical vapor deposition (CVD), plasma enhancedchemical vapor deposition (PECVD), atomic layer deposition (ALD),physical vapor deposition (PVD), chemical etch, plasma etch, immersionphotolithography, impression lithography, thermal oxidation,rapid-thermal-anneal (RTA), thermal diffusion, thin film spin-onapplication, packaging, wafer dicing, chemical mechanical polishing orchemical mechanical planarization (hereafter collectively referred to asCMP), and/or other processing technology.

Referring also to FIG. 2, the computer 100 and the entities 114–120 ofthe foundry 10 may be represented as a plurality of computing devicesforming a job flow mechanism 200. Job flow mechanism 200 may include aplurality of similar and/or different systems and/or sub-systems. Thecomponents ofjob flow mechanism 200 may be modeled as a Petri Net (PN)structure including a PN Center 202, PN Agents 204, 206, 208, a PNRemote Controller 216, application processes, routines, or programs(collectively referred to as “application processes” ) 210, 212, 214,and PN description files 218. The PN Center 202 maybe a centralcontroller that may reside on the computer 100 (FIG. 1) that may controlbatch job processes. The PN agents 204, 206, 208 may also includecomputers associated with or in communication with the entities 114,116, and 118. The PN Remote Controller 216 may include a separate entity120 and/or may represent additional functionality performed by one ofthe other entities 114, 116, and/or 118.

The PN Center 202 may control job process flow control, load PNdescription files and request PN agents 204, 206, 208 to activate theapplication processes 210, 212, 214 in one embodiment. Each PN agents204, 206, and/or 208 may reside internal to and/or separate from the PNcenter 202. The PN Center 202 may also control the updating of PN statusinformation and/or request application processes 210,212, and/or 214 towake up from a sleep state. The PN Center 202 can further provideinformation in response to requests from the PN remote controller 216,and/or handle the control exception handling thereof.

The PN Center 202 may be a centralized computing device and/or server orplurality thereof. PN Agents 204, 206, 208 may be processes running on aserver (e.g., the PN Center 202) and/or may include a unique computingdevice and/or plurality thereof. In the present embodiments, the PNagents 204, 206, 208 receive a “process start” instruction from the PNCenter 202 to activate the associated application processes.

Application processes 210, 212, 214 include a main body of dataprocessing programs of a plurality of batch jobs. Application processes210,212,214 also report the status information to PN Center 202. Theprocesses 210,212,214 may also be controlled to execute or sleep throughthe PN Center 202. The PN remote controller 216 may also include agraphical user interface (GUI) program which may be adapted for thestart of a PN job, the query of a PN job running status, and/or themaintenance of the PN description file 218 by request PN Center 202and/or plurality thereof. A GUI of a PN remote controller 216 mayoperate on top of another sub-system. The GUI may include a front endinterface of a computing device operating system. In one embodiment, thePN Center remote controller 216 may be co-located with the PN Center 202and/or may be geographically located external to the PN Center.

The PN description file 218 may be adapted for defining the applicationprocesses dependency. The PN description file 218 may also providepre-determined assignment of the PN agents 204, 206, 208 topre-determined application processes 210, 212, 214 in one embodiment.The PN agents 204, 206, 208 may provide activation of the applicationprocesses 210, 212, 214. The PN description file 218 may also include aPetri Net with a sub-Petri Net, therefore a parent PN description file218 may include a parent with enclosed child Petri Nets job flows. PNCenter 202 can request PN agents 204, 206, 208 to activate theapplication processes 210,212, 216 according to the PN description file218, in another embodiment.

Referring to FIG. 3, a job flow Petri Net structure 300 may be employedto specify or describe the job flow sequence 200 (FIG. 2) for use withthe foundry 10 (FIG. 1). The Petri Net structure 300 may include aplurality of different components, including a place, a token, atransition, and an arc. The PN structure 300 may be denoted as follows:

-   -   PN={P, T, F, M_(o)}, where    -   P={p₁, p₁, . . . , p_(m)} is a finite set of places,    -   T={t₁, t₁, . . . , t_(n)} is a finite set of transitions,    -   F=(Ftp U Fpt) is a set of arcs discussed further below, and    -   M_(o)=P→{mo, m1, m2, . . . , mm} is a set of initial marking of        each place.    -   m_(k)∈{0,1}

The set of transitions T may be partitioned into two subsets—animmediate or instant transition T_(i) and a timed or latent transitionT_(t). Instant transitions may activate at t=0 whereas latenttransitions may have a timed period. P and T may satisfy the propertiesof P∩T=0 and P U T≠0. Therefore, at least one of the two sets of P and Tmay be non-empty.

-   -   F=Fpt U Ftp, where Fpt={(p, t)|p ε P, t ε T. for each pi ε P        cannot appear more than once.}    -   Ftp={(t, p)|p ε P, t ε T. for each pi ε P cannot appear more        than once}        F is a set of arcs (flow relation) that networks places and        transitions. Fpt represents the set of arcs that flow from place        to transition and each place may not include more than one arc        flowing out. Ftp represents a set of arcs flowing in the        opposite directions.

The definition of the Petri Net model may include m_(ij) associated withthe token number and/or associated with a place p_(j) at time t_(i),and/or a token indicates a condition. In one embodiment, the tokennumber may include in each place a one and/or zero to represent acondition. The condition may include a binary indicator such as “0”and/or “1” associated with a pass and/or fail state.

A typical PN structure may handle one task or parallel tasks such thatmultiple tokens may occupy the same place simultaneously. For example,FIG. 3 shows a job flow PN structure 302 with a set of places labeledP1, P2, P3, and P4 with a set of transitions T1, T2, T3, and T4. The PNstructure 302 illustrates a job flow wherein the firing sequence of thetransition may include problems when one or multiple tokens pass to theplace P2. The firing sequence problem may occurs at place(s) where theplace includes greater than one output, and may cause unexpectedresults, when the firing sequence occurs without an explicit ruleassociated with the PN structure 302 may be present between transitions.

PN structure 304 illustrates a model which includes at least oneexplicit rule. The rule may include a restriction on each place, wherebyno more than one arc flows into and/or out of each place in oneembodiment. The explicit rule eliminates the unexpected problems whichoccurs when defining the job process flow dependency. In a semiconductormanufacturing environment, there may be many processes on-going inparallel which include data collection, data summary and/or dataanalysis. Furthermore, the semiconductor foundry 10 MES may be afflictedwith latency when defining the process flow in PN structures, inparallel with data retrieval, analysis, and/or data summary. A processflow control sequence problem may occur when a place connects with morethan one output arc. Multiple output arcs may result in indeterminateprocess sequence(s), and/or may result in wrong result(s).

Accordingly, the present disclosure contemplates the elimination ofindeterminate process sequence(s) and/or firing sequence problems byintroducing at least one explicit rule. The explicit rule may includethe restriction of one token to any place, arc, or transition at anyinstant. The explicit rule also contemplates the allowance of aplurality of tokens at different places which may be homogeneous in aplurality of places. Alternatively, the plurality of tokens at differentplaces may be heterogeneous in a plurality of places. The presentdisclosure also allows for each place to have only one output and oneinput to give a simplified PN structure 304, wherein each transition mayinclude a plurality of inputs and outputs.

Referring to FIG. 4, a PN structure 400 may include variations of the PNstructure 304 illustrated in FIG. 3. The PN structure 400 includes aplurality of places P1 through P14, a plurality of arcs, and a pluralityof transitions T1 through T10.

Referring to FIGS. 2 and 4, the PN structure 400 may be included in thePN description file 218. The PN Center 202 and/or remote controller 216may monitor and/or command the PN description file 218 to fire anassociated transition associated with the PN structure 400. The PNCenter 202 and/or remote controller 216 may also request agent 204, 206,and/or 208 to activate the application process 210, 212, and/or 214. Forexample, the application process 210 may trigger a plurality ofassociated jobs to provide feedback of the status to PN Center 202and/or remote controller 216 after the completion of a job. PN Center202 and/or remote controller 216 may update the PN status, and pass thetoken to places P2, P3. PN Center 202 and/or remote controller 216 mayalso provide process instructions recursively to the PN Center 202and/or remote controller 216 until a pre-determine number of transitionsare fired associated with the PN structure 400 in one embodiment.

The present disclosure provides a PN job flow mechanism to controlparallel processing. FIGS. 3 through 4 show PN structures that allow forcontrol of parallel processes where multiple places may be incorporatedbetween transitions. In some embodiments, the PN structures may allowfor one input and one output for each place and each transition may havea plurality of input/output arcs. In one embodiment, a single token at agiven instance may also be applicable for a place, a transition, as wellas an arc. Applying a PN structure to semiconductor manufacturingoperations may enable parallel processing for a job flow mechanism,reduce latency between places, and reduce confusion.

It is understood, that the present disclosure contemplates the use of atleast one explicit rule in one embodiment. The explicit rulesignificantly reduces the net operational complexity of the MES and thesemiconductor foundry 10 by using one input and one output, wherein onlyone token may occupy a place and/or a transition at a given moment intime.

Each PN structure may include other PN structures, PN descriptionfile(s) 218, and/or an entire control mechanism for a variety ofprocesses. The PN description file 218 may represent a plurality ofapplication process 210, 212, 214 dependency and/or agents 204, 206, 208to active the application process(es) 210, 212, 214.

Thus, the present disclosure provides a system and method to providecontrol of parallel processing in a manufacturing environment. In oneembodiment, a computerized method for controlling parallel distributedprocesses in a manufacturing environment, such as a semiconductor fab,is disclosed. The method includes providing a plurality of placesassociated with a plurality of the processes condition, wherein eachplace has at most one input path and one output path. A token may beprovided for identifying the status of condition and arcs may beprovided for connecting the places and/or transitions. The arcs mayidentify a route for each token and each place may include at most oneinput path and/or one output path. Conditions may be identified for eachtoken to advance along one of the paths to a different place.

In some embodiments, the method includes providing a plurality oftransitions associated with at least one of the plurality of processes.The method may also include a plurality of transitions associated withat least one of the plurality of processes, which may be separate fromthe places in one embodiment. The places and transitions may beinterconnected with the plurality of paths and each transition mayinclude a plurality of input paths and/or output paths.

In another embodiment, a job flow system for use in a manufacturingenvironment, such as a semiconductor fab, is disclosed. The job flowsystem includes a plurality of sequence-related jobs associated with themanufacturing and/or a computer-controlled Petri Net structure. ThePetri Net structure includes a plurality of agents associated with eachof the sequence-related jobs. The Petri Net structure also includes aplurality of application processes to be performed by the agents, one ormore description files, remote controller for user to control the PNCenter remotely, and a PN Center for loading the one or more descriptionfiles, and activating a first agent to perform one or more of theapplication processes in response to the one or more description files.The Petri Net further includes a PN Center for loading the one or moredescription files in response to transition status information fromapplication processes.

The present disclosure further provides a computer program stored on arecordable medium and for use in monitoring and controlling a pluralityof computer-controlled semiconductor data collection/summary processes.The computer program may include instructions for reporting the processstatus to a PN Center. The PN Center may provide requests to theplurality of computer-controlled semiconductor data collection/summaryprocesses. The computer program may further activate transitionsassociated with a PN description file. The transitions may be activatedby the PN Center, and may be associated with the plurality ofcomputer-controlled semiconductor data collection/summary processes.

The present disclosure has been described relative to a preferredembodiment. Improvements or modifications that become apparent topersons of ordinary skill in the art only after reading this disclosureare deemed within the spirit and scope of the application. It isunderstood that several modifications, changes and substitutions areintended in the foregoing disclosure and in some instances some featuresof the disclosure will be employed without a corresponding use of otherfeatures. Accordingly, it is appropriate that the appended claims beconstrued broadly and in a manner consistent with the scope of thedisclosure.

1. A computerized method for controlling parallel distributed processesin a manufacturing environment, the method comprising the steps of:providing a plurality of places associated with a plurality of processconditions, wherein each place has at most one input path and at mostone output path; providing a token for identifying the status of atleast one of the plurality of process conditions; connecting the placeswith a plurality of arcs, the arcs adapted for identifying a route foreach token, and wherein each place includes at most one input path andat most one output path; identifying conditions from the plurality ofprocess conditions for each token to advance along one of the paths to adifferent place.
 2. The method of claim 1 further comprising the stepsof: providing a plurality of transitions associated with at least one ofthe plurality of processes, but separate from the places; wherein theplaces and transitions are interconnected with the plurality of arcs andwherein each transition can have a plurality of input paths and/oroutput paths.
 3. The method of claim 1 wherein the manufacturingenvironment is a semiconductor fab, and where each of the transitionsrepresents a semiconductor processing operation and an associatedcomputer/data collection process.
 4. A computer-implemented job flowsystem for use in a manufacturing environment, the system comprising aplurality of sequence-related jobs associated with manufacturing andcomputer-controlled Petri-Net (PN) structure comprising: a plurality ofagents associated with each of the sequence-related jobs; a plurality ofapplication processes to be performed by the agents; one or moredescription files, wherein a plurality of conditions are respectivelyrepresented by one of a plurality of places, and wherein each place hasat most one input path and at most one output path; and a PN Center forloading the one or more description files and activating a first agentto perform one or more of the application processes in response to theone or more description files and in response to status information fromat least one of the application processes.
 5. The system of claim 4wherein the application processes support a plurality of batch jobs,each of the batch jobs being responsive to a transition startsynchronization received from the PN Center and following a PN Center'srequest to either process or sleep.
 6. The system of claim 4 wherein thecomputer-controlled Petri Net structure further comprises: a remotecontroller adapted for remote user control of the PN center.
 7. Thesystem of claim 4 wherein the computer-controlled Petri Net structurefurther comprises: a remote controller adapted for automated control ofthe PN center.
 8. The system of claim 7 wherein the remote controller isa separate system from the PN Center and wherein the remote controllerand the PN Center share information though a network.
 9. The system ofclaim 7 wherein the remote controller includes a graphical userinterface (GUI) program which can be used to start a job, query a jobrunning status, and maintain the description file by sending a requestcommand to the PN Center.
 10. The system of claim 4 wherein thedescription file includes a job flow Petri Net description file.
 11. Thesystem of claim 4 wherein the description file includes a plurality ofPetri Nets.
 12. The system of claim 4 wherein the plurality of agentsare configured to receive a request from the PN Center to activate theapplication processes.
 13. A computer program stored on a recordablemedium and for use in monitoring and controlling a plurality ofcomputer-controlled semiconductor data collection/summary processes, thecomputer program including instructions for: reporting the processstatus to a PN Center, the PN Center providing requests to the pluralityof computer-controlled semiconductor data collection/summary processes;and activating transitions associated with a PN description file, thetransitions activated by the PN Center and associated with the pluralityof computer-controlled semiconductor data collection/summary processes,wherein a plurality of conditions are respectively represented by one ofa plurality of places, and wherein each place has at most one input pathand at most one output path.